package com.itheima_08;

import java.io.*;

/*
    需求：把E:\\itcast这个文件夹复制到模块目录下(复制文件夹)
 */
public class CopyFolderDemo {
    public static void main(String[] args) throws IOException {
        //1.创建数据源目录File对象，路径是E:\\itcast
        File srcFolder = new File("E:\\itcast");
        //2.获取数据源目录File对象的名称(itcast)
        String srcFolderName = srcFolder.getName();
        //3.创建目的地目录File对象，路径名是模块名+itcast组成(myCharStream\\itcast)
        File destFolder = new File("myCharStream",srcFolderName);
        //4.判断目的地目录对应的File是否存在，如果不存在，就创建
        if (!destFolder.exists()){
            destFolder.mkdir();
        }
        //5.获取数据源目录下所有的文件的File数组
        File[] listFiles = srcFolder.listFiles();
        //6.遍历File数组，得到每一个File对象，该File对象，其实就是数据源文件
        for (File srcFile : listFiles){
            //数据源文件 E:\\itcast\\mn.jpg
            //获取数据源文件File对象的名称(mn.jpg)
            String srcFileName = srcFile.getName();
            //创建目的地文件File对象，路径名是目的地目录+mn.jpg组成
            File destFile = new File(destFolder,srcFileName);
            //复制文件
            copyFile(srcFile,destFile);
        }
    }

    private static void copyFile(File srcFile, File destFile) throws IOException {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile));
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(destFile));

        byte[] b = new byte[1024];
        int len;
        while ((len=bis.read(b))!=-1){
            bos.write(b,0,len);
        }

        bos.close();
        bis.close();

    }
}














